查看原文
其他

分析帖 | 关于EEGLAB数据预处理流程的讨论

2017-01-19 hcp4715 我爱脑科学网

导读

Introduction

大家好,最近本人在折腾eeglab处理数据。比起商业软件analyzer2.0,eeglab显得不太友好。折腾了几天,刷了好多网页,请教了好多朋友,仍然不能确定自己做的对不对。所以在这里把自己数据预处理的流程贴出来,让大家帮忙看看是否正确,其中有些步骤我仍然抱有疑虑(蓝色标出来)。


数据:BrainVision actiCHamp 采集的数据,64导电极帽,无专门记录眼电的电极。在线记录时以TP9(左侧乳突)为参考电极(导入后只有63个channels);实验分为9个block,每个block的数据分开记录。

操作系统:win8 和 win server 2008 R2 enterprise

matlab 版本:2013b;

eeglab 版本:12_0_1_0b 以及13_0_0b


对单个被试数据预处理的流程,参考以下几个流程(全程GUI,还没开始用script,因为还在尝试):

0 、合并不同block数据,保存为一个单独的dataset文件;

1 、load dataset;

2 、高通滤波Basic FIR filter -high pass filter (linear trend) at 0.05; 关于这个值有不同的推荐,eeglab推荐使用1; adjust的教程上推荐使用0.01~0.3

3 、手动删除突然变化的数据:plot --> channel data (scoll);这个被试很配合,移除的数据主要不同block之间被试休息时的肌电数据;

4、 导入channel location,直接使用eeglab带的标准电极分布,不知道是否合适?

5 、re-reference由于一般使用双侧乳突做参考,所以在重参考时,将TP10作为重参考电极。这样能达到以TP9和TP10双侧乳突做为参考吗?

6 、删除坏的电极(使用来自eeglab mailist问答中的一个方法:[EEG indelec] = pop_rejchanspec( EEG, 'freqlims', [0 10; 35 128], 'stdthresh', [-15 15; -10 10]); from: http://sccn.ucsd.edu/pipermail/eeglablist/2011/003957.html),因为据说automatic channels rejection不太好。使用这个命令没有移除任何电极点的数据;如果使用automatic channels rejection的话,则要移除3个电极。

7 、低通滤波:还是Basic FIR filter功能,30Hz;

8 、分段(未进行基线校正):epoch (without removing the baseline)

9 、run ICA

10 、run Adjust1.1 (component number should be agree with channel number)

     Adjust的五个指标:Spatial Average Difference (SAD),Spatial Eye Difference (SED) ,Temporal Kurtosis (TK) ,Maximum Epoch Variance (MEV) ; Generic Discontinuities Spatial Feature (GDSF) 

11 去除Adjust 1.1标出来的成分,共有9个,第一个是明显的眨眼。


附上我查询到的预处理流程:

1


第一个:来自analyzeNeuroTimeSeries这个google讨论组(https://groups.google.com/forum/ ... iesdata/GIfvRdg3zJo),感谢滴友dolly的推荐;

1. Import raw data.

2. highpass filter at .5 Hz (we don't use a low-pass)

3. Import standard channel locations

4. Rereference EOG channels

5. Epoch data to one EEG structure (eeglab format) that contains ALL trials across all conditions.

6. Subtract a prestimulus baseline.

7. Adjust marker values as appropriate (for example, mark trials as error or posterror)

8. Task-based trial rejection (for example, remove trials with no response or really long responses)

9. Manual trial rejection based on visual inspection

10. Mark electrodes as bad if necessary. Electrodes are not marked as bad if they contain signal and noise; only if they are pure noise, for example if the electrode wasn't even plugged in during the recording.

11. Average reference. Note that you should re-reference the data only after marking electrodes as bad. You don't want the noise from a single bad electrode to infect the good data from other electrodes.

12. run ICA and mark components for removal.

13. Apply scalp Laplacian. In my book, I generally promote the use of the Laplacian. A recent special issue on the Laplacian in EEG research appeared in International Journal of Psychophysiology. After reading those papers, I became more convinced that basically all EEG research should use the Laplacian, and you should need a good reason not to use it.

14. Separate epochs according to experiment condition and start analyzing (i.e., the fun part)!


2


EEGlab上关于quick reject artifact的流程:

1 import data;

2 import channel location file

3 reject artifact-laden data:

     Tools > Reject data epochs > Reject by inspection

     Tools > Reject data epochs > Reject data (all methods).

     Tools > Reject continuous data

     Edit > select data

4 Run ICA, select and reject artifactual components


3


2012年OHBM之前,在清华进行的15th eeglab workship中,ppt上的流程(http://sccn.ucsd.edu/wiki/EEGLAB_2012_Beijing)

介绍预处理的流程的ppt:http://sccn.ucsd.edu/mediawiki/i ... gStarted_EEGLAB.pdf

1 collect high-denstiy eeg data (> 30 channels)

2 import into eeglab

3 import event markders and channel locations;

4 Re-reference/down-sample (if necessary);

5 High pass filter 

6 examine raw data

7 reject bad channels

8 reject large artifcat time points

9 run ICA


4


ADJUST上数据预处理的步骤:

1 high pass filter (0.05-0.3)

2 Remove paroxysmal (突发性的) artifact (but not eye movement)

3 remove bad channels

4 low-pass filter and epoch (better if without removing the baseline)

5 Run ICA 

6 Run adjust


5


还有一个erplab的流程,不太一样,因为erplab有自己的eventlist,但先放在这里

ERPlab关于使用Script教程中example3的流程是:

1 Load eeg dataset;

2 adding channel locations

3 create the eventlist structure;

4 assigning events to bins with Binlister

5 Epoching data;

6 Artifact detection (ERPLAB > Artifact detection in epoched data > Moving window peak-to-peak threshold)

7 averaging;

(编辑/陈锐   52brain公众号编辑部)


52brain,Connect Young Brains.

谈谈本文,如果想收获更多

请点击左下角“阅读原文”的原创帖中留下你的评论。

--52brain我爱脑科学网﹣﹣

专业、分享、真诚、民主


▼▼▼点击左下角“阅读原文”可以访问52brain原帖。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存